import request from '@/utils/request'
const base = '/scheduledjob'

/**
 * 查询ScheduledJob数据列表
 * @param {Object} query - 查询参数
 * @returns {Promise} - Axios请求的Promise对象
 */
export function listScheduledJob(query) {
  return request({
    url: `${base}/list`,
    method: 'get',
    params: query
  })
}

/**
 * 查询ScheduledJob数据详细
 * @param {number} id - ScheduledJob的唯一标识
 * @returns {Promise} - Axios请求的Promise对象
 */
export function getScheduledJob(id) {
  return request({
    url: `${base}/${id}`,
    method: 'get'
  })
}


/**
 * 新增ScheduledJob数据
 * @param {Object} data - 新增的ScheduledJob数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function addScheduledJob(data) {
  return request({
    url: `${base}`,
    method: 'post',
    data: data
  })
}

/**
 * 修改ScheduledJob数据
 * @param {Object} data - 修改的ScheduledJob数据
 * @returns {Promise} - Axios请求的Promise对象
 */
export function updateScheduledJob(data) {
  return request({
    url: `${base}`,
    method: 'put',
    data: data
  })
}

/**
 * 删除ScheduledJob数据
 * @param {number|number[]} ids - 要删除的ScheduledJob的ID，支持单个ID或ID数组
 * @returns {Promise} - Axios请求的Promise对象
 */
export function delScheduledJob(ids) {
  return request({
    url: `${base}`,
    method: 'delete',
    data: ids
  })
}

/**
 * 恢复调度任务
 * @param {number|number[]} ids - 要恢复的任务ID，支持单个ID或ID数组
 * @returns {Promise} - Axios请求的Promise对象
 */
export function resumeJob(id) {
  return request({
    url: `${base}/resume/${id}`,
    method: 'put',
  });
}

/**
 * 暂停调度任务
 * @param {number|number[]} ids - 要暂停的任务ID，支持单个ID或ID数组
 * @returns {Promise} - Axios请求的Promise对象
 */
export function pauseJob(id) {
  return request({
    url: `${base}/pause/${id}`,
    method: 'put',
  });
}



/**
 * 开始调度任务
 * @param {number|number[]} ids - 要暂停的任务ID，支持单个ID或ID数组
 * @returns {Promise} - Axios请求的Promise对象
 */
export function startupJob(id) {
  return request({
    url: `${base}/start/${id}`,
    method: 'put',
  });
}

/**
 * 执行一次作业
 * @param {number|number[]} ids - 要暂停的任务ID，支持单个ID或ID数组
 * @returns {Promise} - Axios请求的Promise对象
 */
export function triggerOnce(id) {
  return request({
    url: `${base}/trigger/once/${id}`,
    method: 'put',
  });
}

/**
 * 获取可用程序集选项
 * @returns {Promise} - Axios请求的Promise对象
 */
export function jobTypeAvail() {
  return request({
    url: `${base}/jobtype/avail`,
    method: 'get',
  });
}



